<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Globals</name>
    </assembly>
    <members>
        <member name="T:CI.Interfaces.ISynapse">
            <summary>
            Synapse
            </summary>
        </member>
        <member name="M:CI.Interfaces.ISynapse.FireInput(System.Int64)">
            <summary>
            Fire the synapse, notify it that a potential has arrived and the value
            </summary>
        </member>
        <member name="M:CI.Interfaces.ISynapse.FireOutput">
            <summary>
            Fire the synapse, notify the outputs that it has a value
            </summary>
        </member>
        <member name="M:CI.Interfaces.ISynapse.CleanupEventHandlers">
            <summary>
            Clean up event handlers
            </summary>
        </member>
        <member name="M:CI.Interfaces.ISynapse.Mutate(System.Double,CI.Organism.IOrganism)">
            <summary>
            Take this parent synapse and create a new synapse to be put in the new child Organism
            Mutate the current synapse and return a new one, deep class level mutation
            </summary>
            <param name="mutationRate">mutation rate to be applied</param>
            <param name="childOrganism">child Organism it will be going into</param>
            <returns>new synapse for child</returns>
        </member>
        <member name="M:CI.Interfaces.ISynapse.Evaluate(System.UInt32)">
            <summary>
            Called each clock tick cycle to calculate and populate the output value and call any delegates
            </summary>
        </member>
        <member name="M:CI.Interfaces.ISynapse.EqualsValueTypes(CI.Interfaces.ISynapse)">
            <summary>
            do a equals comparison of one synapse type to another only comparing the value types, no refference comparisons
            will call the check for learning rules
            </summary>
            <param name="synapse">synapse to compare against</param>
            <returns>true if equal value types</returns>
        </member>
        <member name="P:CI.Interfaces.ISynapse.BindingName">
            <summary>
            Binding name used by the synapes to bind to internal or external IO
            </summary>
        </member>
        <member name="P:CI.Interfaces.ISynapse.InputValue">
            <summary>
            Input value from sensory or other neuron
            todo : consider making this read only so i cant make the mistake  of populating this instead of the fire method!!!
            </summary>
        </member>
        <member name="P:CI.Interfaces.ISynapse.InputWait">
            <summary>
            Input cycles wait until input value can be used
            This value gets decremented each check
            Simulates the lenght of a axiom and the delay associated with it
            </summary>
        </member>
        <member name="P:CI.Interfaces.ISynapse.OutputHold">
            <summary>
            Time to hold the the potential, eg how many cycles to maintain the value
            </summary>
        </member>
        <member name="P:CI.Interfaces.ISynapse.InputWeight">
            <summary>
            Weight/Bias, is this going to veto eg negative number or permit eg positive number
            Acceptable values are postive and negative values
            </summary>
        </member>
        <member name="P:CI.Interfaces.ISynapse.InitInputWeight">
            <summary>
            Init Input Weight at synapse creation
            </summary>
        </member>
        <member name="P:CI.Interfaces.ISynapse.OutputValue">
            <summary>
            Output value read by the neuron
            </summary>
        </member>
        <member name="P:CI.Interfaces.ISynapse.Guid">
            <summary>Syanpses GUID used to uniquely identify it in the neural system</summary>
        </member>
        <member name="P:CI.Interfaces.ISynapse.LastEvalHeartbeatCount">
            <summary>Last HeartBeat evaluation count for the Organism</summary>
        </member>
        <member name="P:CI.Interfaces.ISynapse.TargetNeuron">
            <summary>
            Source connected neurons to the inputs to be added to the waiting list for evaluation
            Note: for a output neuron this will be empty
            </summary>
        </member>
        <member name="P:CI.Interfaces.ISynapse.SourceNeuron">
            <summary>
            Source connected neurons to the inputs to be added to the waiting list for evaluation
            Note: for a input neuron connected to a external stimulas this will be empty, see binding neuron
            </summary>
        </member>
        <member name="E:CI.Interfaces.ISynapse.InboundFiringListeners">
            <summary>
            The synapse has received a firing event
            </summary>
        </member>
        <member name="E:CI.Interfaces.ISynapse.OutboundFiringListeners">
            <summary>
            The synapse is firing a outbound event
            </summary>
        </member>
        <member name="P:CI.Interfaces.ISynapse.LearningRule">
            <summary>
            Learning rule for the synapse
            </summary>
        </member>
        <member name="T:CI.Organism.INeuralSystem">
            <summary>Neural network system, eg add/del neuron</summary>
        </member>
        <member name="M:CI.Organism.INeuralSystem.Evaluate">
            <summary>This is the workhorse of the neural system, this is where it runs through the neural network list executing neurons</summary>
        </member>
        <member name="M:CI.Organism.INeuralSystem.AddNeuron(CI.Interfaces.INeuron)">
            <summary>Add a neuron to its neural network</summary>
        </member>
        <member name="M:CI.Organism.INeuralSystem.DelNeuron(CI.Interfaces.INeuron)">
            <summary>Delete a neuron to its neural network</summary>
        </member>
        <member name="M:CI.Organism.INeuralSystem.Mutate(System.Double,CI.Organism.IOrganism)">
            <summary>Mutate the current neural system</summary>
        </member>
        <member name="E:CI.Organism.INeuralSystem.NotifyEvaluationStart">
            <summary>Neural System Evaluation Start</summary>
        </member>
        <member name="P:CI.Organism.INeuralSystem.Organism">
            <summary>Organism the Neural system belongs to</summary>
        </member>
        <member name="P:CI.Organism.INeuralSystem.WaitingNeuralList">
            <summary>Neural network list waiting to be executed, adding neurons will cause them to be executed</summary>        
        </member>
        <member name="P:CI.Organism.INeuralSystem.HoldingOutputNeuronList">
            <summary>
            This is a list of neurons with synapse which are input to a neuron and are holding a output value
            e.g. still firing for a number of iteration. Therefore they need to be copied into the list
            of neurons to be checked
            </summary>
        </member>
        <member name="P:CI.Organism.INeuralSystem.ProcessedNeuronList">
            <summary>
            List of neurons that where processed by the evaluate function
            To be used to look back at the list of neurons that have fired
            Clear at the begining of each time evaluate gets called
            </summary>
        </member>
        <member name="P:CI.Organism.INeuralSystem.BoundOutputSynapseList">
            <summary>Outbound list of excited bound synapse to evaluate </summary>
        </member>
        <member name="P:CI.Organism.INeuralSystem.Neurons">
            <summary>List of all the neurons in the neural system</summary>
        </member>
        <member name="P:CI.Organism.INeuralSystem.Synapses">
            <summary>List of all the Synapses in the neural system</summary>
        </member>
        <member name="E:CI.Organism.INeuralSystem.NeuralSystemUpdateHandler">
            <summary>Neural System update handler</summary>
        </member>
        <member name="T:CI.IPhysical">
            <summary>
            Physical Cell type which can be body or I/O etc, usally this class is implmented in the Hosting Environment
            This could be a iRobot, Amoeba, Pioneer 3DX
            </summary>
        </member>
        <member name="T:CI.Interfaces.ICell">
            <summary>
            Cell Interface, primary building block eg, Neural, Body part as well as supporting debugging
            </summary>
        </member>
        <member name="M:CI.Interfaces.ICell.AddCell">
            <summary>Add a cell to its environment</summary>
        </member>
        <member name="M:CI.Interfaces.ICell.DelCell">
            <summary>Delete a cell from its environment</summary>
        </member>
        <member name="M:CI.Interfaces.ICell.Mutate(System.Double,CI.Organism.IOrganism)">
            <summary>
            Take this parent cell and create a new cell to be put in the new child Organism
            Mutate the current cell and return a new one, deep class level mutation
            </summary>
            <param name="mutationRate">mutation rate to be applied</param>
            <param name="childOrganism">child child Organism it will be going into</param>
            <returns>new cell for child</returns>
        </member>
        <member name="M:CI.Interfaces.ICell.EqualsValueTypes(CI.Interfaces.ICell)">
            <summary>
            do a equals comparison of one cell type to another only comparing the value types, no refference comparisons
            </summary>
            <param name="cell">cell to compare against</param>
            <returns>true if equal value types</returns>
        </member>
        <member name="M:CI.Interfaces.ICell.ToString(System.String)">
            <summary>
            To String extended
            </summary>
            <param name="value"></param>
            <returns></returns>
        </member>
        <member name="P:CI.Interfaces.ICell.HBTSAlive">
            <summary>Heart beat Time Stamp of when the cell is Alive(Created)</summary>
        </member>
        <member name="P:CI.Interfaces.ICell.HBTSDead">
            <summary>Heart beat Time Stamp of when the cell is Dead(Destroyed)</summary>
        </member>
        <member name="P:CI.Interfaces.ICell.Organism">
            <summary>Organism the cell belongs to</summary>
        </member>
        <member name="P:CI.Interfaces.ICell.Guid">
            <summary>Cell's GUID used to uniquely identify it in the Organism</summary>
        </member>
        <member name="P:CI.Interfaces.ICell.Active">
            <summary>Is the cell active(alive)</summary>
        </member>
        <member name="M:CI.IPhysical.InternalHeartbeat">
            <summary>Organisms internal Heartbeat</summary>
        </member>
        <member name="P:CI.IPhysical.IOManifest">
            <summary>IO manifest, used by neural network when mutating</summary>
        </member>
        <member name="T:CI.Interfaces.IHostingEnvironmentPhysical">
            <summary>Physical aspects of the hosting environment, eg get/set location bind IO</summary>
        </member>
        <member name="M:CI.Interfaces.IHostingEnvironmentPhysical.GetLocation(CI.Organism.IOrganism)">
            <summary>Gets the location of the Organism in the environment</summary>
        </member>
        <member name="M:CI.Interfaces.IHostingEnvironmentPhysical.SetLocation(CI.Organism.IOrganism,CI.Organism.ILocation)">
            <summary>Sets the location of the Organism in the environment</summary>
        </member>
        <member name="M:CI.Interfaces.IHostingEnvironmentPhysical.RegisterCell(CI.Interfaces.ICell,CI.Interfaces.ActionType)">
            <summary>Register the cell in the environment</summary>
        </member>
        <member name="M:CI.Interfaces.IHostingEnvironmentPhysical.Registered(CI.Organism.IOrganism)">
            <summary>Checks to see if the Organism is registered in the physical environment</summary>
        </member>
        <member name="M:CI.Interfaces.IHostingEnvironmentPhysical.BindSynapseIO(CI.Interfaces.ISynapse,CI.Organism.IOrganism)">
            <summary>
            Bind a name of a IO Event in the physical world to a synapse
            eg "Left Bumper" to a IO synapse, "Right Drive" to a IO synapse
            </summary>
            <param name="synapse">Synapse</param>
            <param name="organism">Organism its being bound to</param>
        </member>
        <member name="M:CI.Interfaces.IHostingEnvironmentPhysical.UnBindSynapseIO(CI.Interfaces.ISynapse,CI.Organism.IOrganism)">
            <summary>
            UnBind a name of a IO Event in the physical world to a synapse
            eg "Left Bumper" to a IO synapse, "Right Drive" to a IO synapse
            </summary>
            <param name="synapse">Synapse</param>
            <param name="organism">Organism its being unbound from</param>
        </member>
        <member name="M:CI.Interfaces.IHostingEnvironmentPhysical.CleanUp">
            <summary>
            Clean up the environment in case of restart
            </summary>
        </member>
        <member name="M:CI.Interfaces.IHostingEnvironmentPhysical.WaitForIdle">
            <summary>
            Wait for either the simulation,physics etc engine to catch up, eg fps to an acceptable value, idel state
            </summary>
        </member>
        <member name="M:CI.Interfaces.IHostingEnvironmentPhysical.ShutDownService">
            <summary>
            Shutdown the robotics service and related services
            </summary>
        </member>
        <member name="M:CI.Interfaces.IHostingEnvironmentPhysical.SanityCheck">
            <summary>
            Check internal state of environment etc, make sure entity counts etc are all equal
            </summary>
        </member>
        <member name="M:CI.Interfaces.IHostingEnvironmentPhysical.Break">
            <summary>
            Break out of the hosting environment, usually call when shutting down
            </summary>
        </member>
        <member name="M:CI.Interfaces.IHostingEnvironmentPhysical.HideExternalCameraWindow(System.Boolean)">
            <summary>
            Hide the external camera window if it supports it
            </summary>
        </member>
        <member name="P:CI.Interfaces.IHostingEnvironmentPhysical.MaxEntitysSupported">
            <summary>
            Max entitys supported by environment
            </summary>
        </member>
        <member name="P:CI.Interfaces.IHostingEnvironmentPhysical.EntitysConsumed">
            <summary>
            Entitys consumed
            </summary>
        </member>
        <member name="P:CI.Interfaces.IHostingEnvironmentPhysical.EntitysTolerence">
            <summary>
            Extra entity tolerence in system
            </summary>
        </member>
        <member name="T:CI.IPhysicalEnvironment">
            <summary>
            Implementation of the IPhysical object in the Environment
            </summary>
        </member>
        <member name="M:CI.IPhysicalEnvironment.BindSynapseIO(CI.Interfaces.ISynapse,CI.Organism.IOrganism)">
            <summary>
            Bind a name of a IO Event in the physical world to a synapse
            eg "Left Bumper" to a IO synapse, "Right Drive" to a IO synapse
            </summary>
            <param name="synapse">Synapse</param>
            <param name="organism">Organism</param>
        </member>
        <member name="M:CI.IPhysicalEnvironment.UnBindSynapseIO(CI.Interfaces.ISynapse,CI.Organism.IOrganism)">
            <summary>
            UnBind a name of a IO Event in the physical world to a synapse
            eg "Left Bumper" to a IO synapse, "Right Drive" to a IO synapse
            </summary>
            <param name="synapse">Synapse</param>
            <param name="organism">Organism its being unbound from</param>
        </member>
        <member name="M:CI.IPhysicalEnvironment.Cleanup">
            <summary>
            Cleanup the entity, remove internal handlers etc
            </summary>
        </member>
        <member name="P:CI.IPhysicalEnvironment.BaseObject">
            <summary>
            Base object of the Organism in the physical environment, used to get locations, place in environment
            </summary>
        </member>
        <member name="P:CI.IPhysicalEnvironment.Organism">
            <summary>
            Organism it is relative to
            </summary>
        </member>
        <member name="T:CI.Interfaces.IDNA">
            <summary>
            The Organisms DNA
            </summary>
        </member>
        <member name="M:CI.Interfaces.IDNA.Grow">
            <summary>Grow the Organism, run the DNA parser</summary>
        </member>
        <member name="M:CI.Interfaces.IDNA.Mutate(System.Double,CI.Organism.IOrganism)">
            <summary>
            Take this parents DNA and create a new DNA to be put in the new child Organism
            Mutate the current DNA and return a new one, deep class level mutation
            </summary>
            <param name="mutationRate">mutation rate to be applied</param>
            <param name="childOrganism">child Organism it will be going into</param>
            <returns>new dna for child</returns>
        </member>
        <member name="M:CI.Interfaces.IDNA.EqualsValueTypes(CI.Interfaces.IDNA)">
            <summary>
            do a equals comparison of one dna type to another only comparing the value types, no refference comparisons
            </summary>
            <param name="dna">dna to compare against</param>
            <returns>true if equal value types</returns>
        </member>
        <member name="P:CI.Interfaces.IDNA.Chromosomes">
            <summary>Chromosones</summary>
        </member>
        <member name="P:CI.Interfaces.IDNA.ActioningGenes">
            <summary>Actioning Genes</summary>
        </member>
        <member name="T:CI.Interfaces.IChromosome">
            <summary>
            A Chromosone containing Genee
            </summary>
        </member>
        <member name="M:CI.Interfaces.IChromosome.Mutate(System.Double,CI.Organism.IOrganism)">
            <summary>
            Take this parents Chromosome and create a new Chromosome to be put in the new Organism
            Mutate the current Chromosome and return a new one, deep class level mutation
            </summary>
            <param name="mutationRate">mutation rate to be applied</param>
            <param name="childOrganism">child Organism it will be going into</param>
            <returns>new chromosome for child</returns>
        </member>
        <member name="M:CI.Interfaces.IChromosome.EqualsValueTypes(CI.Interfaces.IChromosome)">
            <summary>
            do a equals comparison of one chromosome type to another only comparing the value types, no refference comparisons
            </summary>
            <param name="chromosome">chromosome to compare against</param>
            <returns>true if equal value types</returns>
        </member>
        <member name="P:CI.Interfaces.IChromosome.Guid">
            <summary>Chromosone's GUID used to uniquely identify it in the chromosome collection</summary>
        </member>
        <member name="P:CI.Interfaces.IChromosome.Genes">
            <summary>Chromosones Gene List</summary>
        </member>
        <member name="T:CI.Interfaces.IChromosomeCollection">
            <summary>
            Collection class containing a list of  Chromosone's
            </summary>
        </member>
        <member name="M:CI.Interfaces.IChromosomeCollection.Mutate(System.Double,CI.Organism.IOrganism)">
            <summary>
            Take this parents Chromosomes and create a new Chromosomes collection to be put in the new Organism
            Mutate the current Chromosomes and return a new one, deep class level mutation
            </summary>
            <param name="mutationRate">mutation rate to be applied</param>
            <param name="childOrganism">child Organism it will be going into</param>
            <returns>new chromosomes for child</returns>
        </member>
        <member name="M:CI.Interfaces.IChromosomeCollection.Find(System.Guid)">
            <summary>
            Find the Chromosone with the specifed guid
            </summary>
            <param name="guid">guid to find</param>
            <returns>Chromosone</returns>
        </member>
        <member name="T:CI.Interfaces.IGene">
            <summary>
            Individual Gene, sub unit of a chromosone, this perfoms a operation on a cell
            </summary>
        </member>
        <member name="M:CI.Interfaces.IGene.Actionable">
            <summary>Is the gene actionable, eg does it meet the requirements in the list</summary>
        </member>
        <member name="M:CI.Interfaces.IGene.Action">
            <summary>Carry out the action for the gene</summary>
        </member>
        <member name="M:CI.Interfaces.IGene.Mutate(System.Double,CI.Organism.IOrganism)">
            <summary>
            Take this parents Gene and create a new Gene to be put in the new child organism
            Mutate the current Gene and return a new one, deep class level mutation
            </summary>
            <param name="mutationRate">mutation rate to be applied</param>
            <param name="childOrganism">child Organism it will be going into</param>
            <returns>new gene for child</returns>
        </member>
        <member name="M:CI.Interfaces.IGene.EqualsValueTypes(CI.Interfaces.IGene)">
            <summary>
            do a equals comparison of one gene type to another only comparing the value types, no refference comparisons
            </summary>
            <param name="gene">gene to compare against</param>
            <returns>true if equal value types</returns>
        </member>
        <member name="P:CI.Interfaces.IGene.Guid">
            <summary>Gene's GUID used to uniquely identify it in the chromosome </summary>
        </member>
        <member name="P:CI.Interfaces.IGene.Organism">
            <summary>the Organism(current) the genes will be acting on</summary>
        </member>
        <member name="P:CI.Interfaces.IGene.ActionType">
            <summary>Action Type</summary>
        </member>
        <member name="P:CI.Interfaces.IGene.Actioned">
            <summary>If the Gene action type has been actioned then don't process it</summary>
        </member>
        <member name="P:CI.Interfaces.IGene.Requirements">
            <summary>The list of requirements to forefill to action the gene</summary>
        </member>
        <member name="T:CI.Interfaces.IGeneCollection">
            <summary>
            Collection class containing a list of Gene's
            </summary>
        </member>
        <member name="M:CI.Interfaces.IGeneCollection.Mutate(System.Double,CI.Organism.IOrganism)">
            <summary>
            Take this parents Genes and create a new Gene Collection to be put in the new child organism
            Mutate the current Genes and return a new one, deep class level mutation
            </summary>
            <param name="mutationRate">mutation rate to be applied</param>
            <param name="childOrganism">child Organism it will be going into</param>
            <returns>new gene collection for child</returns>
        </member>
        <member name="M:CI.Interfaces.IGeneCollection.Find(System.Guid)">
            <summary>
            Find the gene with the specifed guid
            </summary>
            <param name="guid">guid to find</param>
            <returns>Gene</returns>
        </member>
        <member name="T:CI.Interfaces.IRequirement">
            <summary>
            Requirement Item that have to be met before the Gene action can be activated
            </summary>
        </member>
        <member name="M:CI.Interfaces.IRequirement.State">
            <summary>
            Does the requirement type meet the requirements
            </summary>
            <returns>True if it meets the requirements else false</returns>
        </member>
        <member name="M:CI.Interfaces.IRequirement.Mutate(System.Double,CI.Organism.IOrganism)">
            <summary>
            Take this parent Requirement and create a new requirement to be put in the new child organism
            Mutate the current requirement and return a new one, deep class level mutation
            </summary>
            <param name="mutationRate">mutation rate to be applied</param>
            <param name="childOrganism">child Organism it will be going into</param>
            <returns>new requirement for child</returns>
        </member>
        <member name="M:CI.Interfaces.IRequirement.EqualsValueTypes(CI.Interfaces.IRequirement)">
            <summary>
            do a equals comparison of one requirement type to another only comparing the value types, no refference comparisons
            </summary>
            <param name="requirement">requirement to compare against</param>
            <returns>true if equal value types</returns>
        </member>
        <member name="P:CI.Interfaces.IRequirement.Guid">
            <summary>Gene's GUID used to uniquely identify it in the requirement </summary>
        </member>
        <member name="P:CI.Interfaces.IRequirement.ComparisonType">
            <summary>Comparison Type then checking state, eg equal, less then, greater then</summary>
        </member>
        <member name="T:CI.Interfaces.IRequirementCollection">
            <summary>
            Collection class containing the list of the requirments
            </summary>
        </member>
        <member name="M:CI.Interfaces.IRequirementCollection.Mutate(System.Double,CI.Organism.IOrganism)">
            <summary>
            Take this parent Requirements and create a new requirement collection to be put in the new child organism
            Mutate the current requirements and return a new one, deep class level mutation
            </summary>
            <param name="mutationRate">mutation rate to be applied</param>
            <param name="childOrganism">child Organism it will be going into</param>
            <returns>new requirements for child</returns>
        </member>
        <member name="M:CI.Interfaces.IRequirementCollection.Find(System.Guid)">
            <summary>
            Find the requirement with the specifed guid
            </summary>
            <param name="guid">guid to find</param>
            <returns>requirement</returns>
        </member>
        <member name="T:CI.Interfaces.ActionType">
            <summary>Action type that Gene can invoke if it meets it requirements</summary>
        </member>
        <member name="F:CI.Interfaces.ActionType.Unknown">
            <summary>
            Unknown, and if this value turns up it could be the sign of an error
            </summary>
        </member>
        <member name="F:CI.Interfaces.ActionType.AddCell">
            <summary>
            Action type of adding a cell, eg. add neuron, happens when growing
            </summary>
        </member>
        <member name="F:CI.Interfaces.ActionType.DelCell">
            <summary>
            Action type of deleting a cell, eg. deleting a neuron usually happens to destroy a cell in ageing, but it still exists in environment
            </summary>
        </member>
        <member name="F:CI.Interfaces.ActionType.RemoveCell">
            <summary>
            The cell is dead and has been consumed so remove it from the environment
            </summary>
        </member>
        <member name="F:CI.Interfaces.ActionType.NotApplicable">
            <summary>
            Not applicable
            </summary>
        </member>
        <member name="T:CI.Interfaces.ComparisonType">
            <summary>Comparison Type then checking state, eg equal, less then, greater then</summary>
        </member>
        <member name="F:CI.Interfaces.ComparisonType.Unknown">
            <summary>
            Unknown, and if this value turns up it could be the sign of an error
            </summary>
        </member>
        <member name="F:CI.Interfaces.ComparisonType.Equal">
            <summary>Equal</summary>
        </member>
        <member name="F:CI.Interfaces.ComparisonType.GreaterThan">
            <summary>Greater than comparison</summary>
        </member>
        <member name="F:CI.Interfaces.ComparisonType.LessThan">
            <summary>Less then comparison</summary>
        </member>
        <member name="T:CI.Interfaces.StatsSleeper">
            <summary>
            Sleeper stats
            </summary>
        </member>
        <member name="F:CI.Interfaces.StatsSleeper.CPUStart">
            <summary>
            Cpu vale at start time of sleeping
            </summary>
        </member>
        <member name="F:CI.Interfaces.StatsSleeper.CPUFinish">
            <summary>
            Cpu value at end time of sleeping
            </summary>
        </member>
        <member name="F:CI.Interfaces.StatsSleeper.SleepTime">
            <summary>
            how long to sleep for
            </summary>
        </member>
        <member name="F:CI.Interfaces.StatsSleeper.StackFrame">
            <summary>
            current stack frames 
            </summary>
        </member>
        <member name="T:CI.SimEnv">
            <summary>
            singleton class to hold the physical hosting environment
            </summary>
        </member>
        <member name="F:CI.SimEnv._instance">
            <summary>singleton instance</summary>
        </member>
        <member name="F:CI.SimEnv.SyncRoot">
            <summary>sync root to lock against</summary>
        </member>
        <member name="F:CI.SimEnv.HostEnvPhysical">
            <summary>
            Physical Hosting environment
            </summary>
        </member>
        <member name="M:CI.SimEnv.#ctor">
            <summary>
            private contsturctor
            </summary>
        </member>
        <member name="M:CI.SimEnv.#ctor(CI.SimEnv)">
            <summary>
            Test, used to pass across app domains
            </summary>
            <param name="simEnv"></param>
        </member>
        <member name="M:CI.SimEnv.ExceptionLogger(System.Exception)">
            <summary>
            Exception Logger
            </summary>
            <param name="e"></param>
        </member>
        <member name="M:CI.SimEnv.ExceptionHandler(System.Object,System.UnhandledExceptionEventArgs)">
            <summary>
            Exception catcher across threads 
            </summary>
            <param name="sender"></param>
            <param name="args"></param>
        </member>
        <member name="P:CI.SimEnv.StartTime">
            <summary>Start time</summary>
        </member>
        <member name="P:CI.SimEnv.HostEnv">
            <summary>
            Hosting environment
            </summary>
        </member>
        <member name="P:CI.SimEnv.BreakExit">
            <summary>Break and exit the current processing, used for external debuggers etc</summary>
        </member>
        <member name="P:CI.SimEnv.UsingHW">
            <summary>
            Are we using real hardware
            </summary>
        </member>
        <member name="P:CI.SimEnv.HWFailureRestart">
            <summary>
            Set restart on robotic hardware failure to restart
            </summary>
        </member>
        <member name="P:CI.SimEnv.Instance">
            <summary>
            get the simenv object
            </summary>
        </member>
        <member name="T:CI.Organism.SynapseIO">
            <summary>
            Struct, External Synaptic IO, eg a bumber, wheel etc
            </summary>
        </member>
        <member name="F:CI.Organism.SynapseIO.bindingName">
            <summary>Binding name eg. IROBOTLEFTREARWHEELFORWARD</summary>
        </member>
        <member name="F:CI.Organism.SynapseIO.shortName">
            <summary>Short name eg. left front wheel forward</summary>
        </member>
        <member name="F:CI.Organism.SynapseIO.description">
            <summary>description eg. This bound object is the Front wheel drive system</summary>
        </member>
        <member name="M:CI.Organism.SynapseIO.#ctor(System.String,System.String,System.String)">
            <summary>
            Initial struct with value
            </summary>
            <param name="bindingName">binding name</param>
            <param name="shortName">short name</param>
            <param name="description">description</param>
        </member>
        <member name="M:CI.Organism.SynapseIO.ToString">
            <summary>
            To String implmentation of the Synapse IO
            </summary>
            <returns></returns>
        </member>
        <member name="T:CI.ScreenSaver">
            <summary>
            Screen saver handling class
            </summary>
        </member>
        <member name="M:CI.ScreenSaver.SystemParametersInfo(System.Int32,System.Int32,System.Int32*,System.Int32)">
            <summary>
            System Paramter
            </summary>
            <param name="uiAction"></param>
            <param name="uiParam"></param>
            <param name="pvParam"></param>
            <param name="fWinIni"></param>
            <returns></returns>
        </member>
        <member name="M:CI.ScreenSaver.SetScreenSaver">
            <summary>
            Set the screen saver to us
            </summary>
        </member>
        <member name="M:CI.ScreenSaver.AreWeCurrentScreenSaver">
            <summary>
            Are we the current screen saver
            </summary>
        </member>
        <member name="T:CI.LaunchType">
            <summary>
            how the  app was launched
            </summary>
        </member>
        <member name="F:CI.LaunchType.CommandLine">
            <summary>Command Line launch</summary>
        </member>
        <member name="F:CI.LaunchType.Gui">
            <summary>Guid launch</summary>
        </member>
        <member name="F:CI.LaunchType.ScreenSaver">
            <summary>Screen Saver launch</summary>
        </member>
        <member name="F:CI.LaunchType.WCFService">
            <summary>Started from WCF service</summary>
        </member>
        <member name="F:CI.LaunchType.Unknown">
            <summary>Unknown launch</summary>
        </member>
        <member name="T:CI.Organism.ILocation">
            <summary>The organisms location</summary>
        </member>
        <member name="M:CI.Organism.ILocation.CompareAxis(CI.Organism.ILocation,System.Int32)">
            <summary>Compare this objects location with another just on the x, y , z axis, not the radius etc</summary>
            <param name="location">Comparing object</param>
            <returns>are the the same location?</returns>
        </member>
        <member name="P:CI.Organism.ILocation.XAxis">
            <summary>X Axis</summary>
        </member>
        <member name="P:CI.Organism.ILocation.YAxis">
            <summary>Y Axis</summary>
        </member>
        <member name="P:CI.Organism.ILocation.ZAxis">
            <summary>Z Axis</summary>
        </member>
        <member name="P:CI.Organism.ILocation.XRadius">
            <summary>Max X radius used for basic collision detection</summary>
        </member>
        <member name="P:CI.Organism.ILocation.YRadius">
            <summary>Max Y radius used for basic collision detection</summary>
        </member>
        <member name="P:CI.Organism.ILocation.ZRadius">
            <summary>Max Z radius used for basic collision detection</summary>
        </member>
        <member name="T:CI.Interfaces.IHostingEnvironment">
            <summary>Hosting environment, this drives the looping of the processing of the organisms</summary>
        </member>
        <member name="M:CI.Interfaces.IHostingEnvironment.BoundsChecking(CI.Organism.IOrganism)">
            <summary>
            Check and make sure the organism is within the bounds of the environment
            </summary>
            <param name="organism"></param>
            <returns>true if outside the bounds</returns>
        </member>
        <member name="M:CI.Interfaces.IHostingEnvironment.Start">
            <summary>Start the hosting environment</summary>
        </member>
        <member name="M:CI.Interfaces.IHostingEnvironment.RegisterPhysicalCell(CI.Interfaces.ICell,CI.Interfaces.ActionType)">
            <summary>Called to register the childOrganism in the environment, this may be different per environment</summary>
        </member>
        <member name="P:CI.Interfaces.IHostingEnvironment.Organisms">
            <summary>Organisms</summary>
        </member>
        <member name="P:CI.Interfaces.IHostingEnvironment.Simulation">
            <summary>Simulation, if set it has rules and checks that it runs</summary>
        </member>
        <member name="P:CI.Interfaces.IHostingEnvironment.FitnessFunction">
            <summary>Fitness function</summary>
        </member>
        <member name="P:CI.Interfaces.IHostingEnvironment.HBOrganismCollectionMin">
            <summary>Minimum time per heartbeat for all Organisms</summary>
        </member>
        <member name="P:CI.Interfaces.IHostingEnvironment.EnvironmentScenario">
            <summary>
            Environment scenario
            </summary>
        </member>
        <member name="P:CI.Interfaces.IHostingEnvironment.ProcessingState">
            <summary>
            Processing state eg, working, pausing
            </summary>
        </member>
        <member name="P:CI.Interfaces.IHostingEnvironment.HostingEnvironmentPhysical">
            <summary>Physical aspects of the hosting environment</summary>
        </member>
        <member name="P:CI.Interfaces.IHostingEnvironment.LagTime">
            <summary>System lag time of computing the entites, difference between acceptable time and actual</summary>
        </member>
        <member name="P:CI.Interfaces.IHostingEnvironment.SystemHeartBeat">
            <summary>System Heart Beat counter</summary>
        </member>
        <member name="P:CI.Interfaces.IHostingEnvironment.StartTime">
            <summary>System start time used for calculating running time</summary>
        </member>
        <member name="P:CI.Interfaces.IHostingEnvironment.VersionInformation">
            <summary>
            Version of Hosting Environment
            </summary>
        </member>
        <member name="T:CI.Globals">
            <summary>
            Static global constants and varibles
            </summary>
        </member>
        <member name="F:CI.Globals.ScenarioMatch">
            <summary>Scenario match</summary>
        </member>
        <member name="F:CI.Globals.ENERGY">
            <summary>Energy constant to identify the energy sypanse to be read</summary>
        </member>
        <member name="F:CI.Globals.ENERGYCHANGE">
            <summary>Energy constant to identify the energy sypanse to be read</summary>
        </member>
        <member name="F:CI.Globals.BreakTime">
            <summary> break time set to break out of proccessing </summary>
        </member>
        <member name="F:CI.Globals.ContinousRestart">
            <summary>restart simulation</summary>
        </member>
        <member name="F:CI.Globals.CriticalAcquireLockTimeout">
            <summary>Critical Acquire Lock Timeout</summary>
        </member>
        <member name="F:CI.Globals.LaunchedFrom">
            <summary>Where was the app launched from</summary>
        </member>
        <member name="F:CI.Globals._runningMutex">
            <summary>Mutex to keep track if we are already loaded</summary>
        </member>
        <member name="F:CI.Globals.StartupRoboticsTimeout">
            <summary>Startup robotics timeout</summary>
        </member>
        <member name="M:CI.Globals.GetInterfaces(System.Type)">
            <summary>
            
            </summary>
            <param name="interfaceType"></param>
            <returns></returns>
        </member>
        <member name="M:CI.Globals.IsAlreadyRunning">
            <summary>
            Detects if the app is already running and if so forces a shutdown
            </summary>
        </member>
        <member name="T:CI.EnergyDelegate">
            <summary>Organism Energy Delegate</summary>
        </member>
        <member name="T:CI.BoundOuptutDelegate">
            <summary>Bound Output Delegate</summary>
        </member>
        <member name="T:CI.BoundInputDelegate">
            <summary>Bound input delegate</summary>
        </member>
        <member name="T:CI.BumperDelegate">
            <summary>delegate for a bumper handler</summary>
        </member>
        <member name="T:CI.NeuralNetworkDisplayMode">
            <summary>Neural network display mode</summary>
        </member>
        <member name="T:CI.Organism.ISynapseCollection">
            <summary>
            synapse collection
            </summary>
        </member>
        <member name="M:CI.Organism.ISynapseCollection.Find(System.Guid)">
            <summary>
            Find the ISynapse with the specifed guid
            </summary>
            <param name="guid">guid to find</param>
            <returns>ISynapse</returns>
        </member>
        <member name="M:CI.Organism.ISynapseCollection.ConnectBindingName(System.String)">
            <summary>
            Get a list of synapses  connected to a binding
            </summary>
            <param name="bindingName"></param>
            <returns></returns>
        </member>
        <member name="T:CI.Utils.TraceLogger">
            <summary>
            Trace Logging Class, will clear all existing listeners and add a file and console listener
            Logs info to all attached listners depending on logging level
            </summary>
        </member>
        <member name="M:CI.Utils.TraceLogger.LogDebug(System.String)">
            <summary>
            Log informational message        
            </summary>
            <param name="logMessage">string message to be logged</param>
        </member>
        <member name="M:CI.Utils.TraceLogger.LogWarn(System.String)">
            <summary>
            Log a warning message
            </summary>
            <param name="logMessage">string message to be logged</param>
        </member>
        <member name="M:CI.Utils.TraceLogger.LogException(System.String,System.Exception)">
            <summary>
            Log an Exception and message
            </summary>
            <param name="logMessage">String message or area of exception</param>
            <param name="exception">Exception thrown</param>
        </member>
        <member name="M:CI.Utils.TraceLogger.PurgeGUIDLongFilenameLogFiles">
            <summary>
            get rid of the guid named trace files that can build up
            </summary>
        </member>
        <member name="M:CI.Utils.TraceLogger.Init">
            <summary>
            Init the trace loggers
            </summary>
        </member>
        <member name="M:CI.Utils.TraceLogger.Close">
            <summary>
            Close the trace logger
            </summary>
        </member>
        <member name="M:CI.Utils.TraceLogger.UploadLogs(System.String)">
            <summary>
            Upload Logs
            </summary>
        </member>
        <member name="T:CI.Organism.IOrganism">
            <summary>Organism properties and methods required for processing, eg its dna, neural system</summary>
        </member>
        <member name="M:CI.Organism.IOrganism.Heartbeat">
            <summary>Organisms Heartbeat, this triggers the processing of the DNA</summary>
        </member>
        <member name="M:CI.Organism.IOrganism.Terminate(System.String)">
            <summary>Terminate Organism, this will usually be because of bad dna, so move it to the dead collection</summary>
        </member>
        <member name="M:CI.Organism.IOrganism.TerminateAndDestroy(System.String)">
            <summary>Terminate Organism and move it to the inactive collection, not the dead collection like a normal terminate will do</summary>
        </member>
        <member name="M:CI.Organism.IOrganism.EqualsValueTypes(CI.Organism.IOrganism)">
            <summary>
            do a equals comparison of one organism type to another only comparing the value types, no refference comparisons
            </summary>
            <param name="organism">organism to compare against</param>
            <returns>true if equal value types</returns>
        </member>
        <member name="M:CI.Organism.IOrganism.Zygote">
            <summary>
            Get the organisms zygote
            </summary>
            <returns></returns>
        </member>
        <member name="P:CI.Organism.IOrganism.DNA">
            <summary>DNA for the Organism</summary>
        </member>
        <member name="P:CI.Organism.IOrganism.Guid">
            <summary>Organism's GUID used to uniquely identify it in the Organism</summary>
        </member>
        <member name="P:CI.Organism.IOrganism.ParentOrganisms">
            <summary>This organisms parents</summary>
        </member>
        <member name="E:CI.Organism.IOrganism.EnergyChangeEvent">
            <summary>Energy Change Event</summary>
        </member>
        <member name="E:CI.Organism.IOrganism.EnergySetEvent">
            <summary>Energy Set Event</summary>
        </member>
        <member name="E:CI.Organism.IOrganism.HeartbeatChangeEvent">
            <summary>Heartbeat firing</summary>
        </member>
        <member name="E:CI.Organism.IOrganism.RegistrationChangeEvent">
            <summary>Registration of the organism in the enviroment change firing</summary>
        </member>
        <member name="E:CI.Organism.IOrganism.BornChangeEvent">
            <summary>Happens when the organism is born</summary>
        </member>
        <member name="E:CI.Organism.IOrganism.LocationChangeEvent">
            <summary>Happens when the organism changed location</summary>
        </member>
        <member name="P:CI.Organism.IOrganism.NeuralSystem">
            <summary>Neural network for the Organism</summary>
        </member>
        <member name="P:CI.Organism.IOrganism.ActiveState">
            <summary>Active state of the Organism. If their eaten etc don't process them</summary>
        </member>
        <member name="P:CI.Organism.IOrganism.Energy">
            <summary>Organism energy level, when this gets to 0 the Organism is Dead</summary>
        </member>
        <member name="P:CI.Organism.IOrganism.InitEnergy">
            <summary>Organism Init energy level the Organism had at creation</summary>
        </member>
        <member name="P:CI.Organism.IOrganism.BMEnergy">
            <summary>Body mass energy, this is the energy left in the Organism once it is dead</summary>
        </member>
        <member name="P:CI.Organism.IOrganism.CIET">
            <summary>Collision Impact Energy Transfer, this is how much is taken off a coliding Organism if it is the largest of the two Organism</summary>
        </member>
        <member name="P:CI.Organism.IOrganism.InitCIET">
            <summary>Initial Collision Impact Energy Transfer, this is how much is taken off a coliding Organism if it is the largest of the two Organism</summary>
        </member>
        <member name="P:CI.Organism.IOrganism.FitnessValue">
            <summary>Calculated fitness value assigned by the fitness function</summary>
        </member>
        <member name="P:CI.Organism.IOrganism.HeartbeatCount">
            <summary>HeartBeat count for the Organism</summary>
        </member>
        <member name="P:CI.Organism.IOrganism.HostingEnvironment">
            <summary>Hosting Environment of the Organism, used to ask for location etc.</summary>
        </member>
        <member name="P:CI.Organism.IOrganism.Location">
            <summary>Organisms Location, used in collison detection</summary>
        </member>
        <member name="P:CI.Organism.IOrganism.LocationDirty">
            <summary>
            This indicates if the location has changed and also to reset the flag
            From this we can decide to redraw maps and calculate collisions
            </summary>
        </member>
        <member name="P:CI.Organism.IOrganism.Organisms">
            <summary>All the organisms in the environment, the collection it belongs to..</summary>
        </member>
        <member name="P:CI.Organism.IOrganism.Cells">
            <summary>All the cells in the Organism</summary>
        </member>
        <member name="P:CI.Organism.IOrganism.Born">
            <summary>
            Has the organism been born yet, they could be in seed type situation and not had the zygote active yet
            Usually determined by checking the zygote..
            If not born then we dont have to do neural or fitness function
            </summary>
        </member>
        <member name="T:CI.Interfaces.ISimulationRestrictions">
            <summary>Simulation environment restrictions</summary>
        </member>
        <member name="M:CI.Interfaces.ISimulationRestrictions.RestrictionChecking(CI.Interfaces.IHostingEnvironment)">
            <summary>
            Restrictions to be applied in the simulation, Simulation rules to be applied in the then hosting environment
            </summary>
        </member>
        <member name="M:CI.Interfaces.ISimulationRestrictions.FitnessChecking(CI.Organism.IOrganism)">
            <summary>
            checking the fitness of the organism, will terminate it if not
            </summary>
            <param name="organism">the organism to check</param>
        </member>
        <member name="T:CI.Utils.ResourceFolders">
            <summary>
            managers folders
            </summary>
        </member>
        <member name="M:CI.Utils.ResourceFolders.UsersResourceFolder">
            <summary>
            User resource folder will be MyDocuments\Mesopotamia Experiment
            </summary>
            <returns></returns>
        </member>
        <member name="T:CI.Organism.ILearningRule">
            <summary>
            This is the learning rule associated with the synapse
            </summary>
        </member>
        <member name="M:CI.Organism.ILearningRule.TargetNeuronFired(System.Boolean)">
            <summary>
            Notifiation that the target neuron has or hasnt fired and update
            </summary>
            <param name="fired">did or didnt it fire?</param>
        </member>
        <member name="M:CI.Organism.ILearningRule.Mutate(System.Double,CI.Interfaces.ISynapse)">
            <summary>
            Take this learning rule and create a learning rule to be put in the new child Organism
            Mutate the current learning rule and return a new one, deep class level mutation
            </summary>
            <param name="mutationRate">mutation rate to be applied</param>
            <param name="childSynapse">child synapse it will be going into</param>
            <returns>new learning rule for child</returns>
        </member>
        <member name="M:CI.Organism.ILearningRule.EqualsValueTypes(CI.Organism.ILearningRule)">
            <summary>
            do a equals comparison of one learning type to another only comparing the value types, no refference comparisons
            </summary>
            <param name="learningRule">learning rule to compare against</param>
            <returns>true if equal value types</returns>
        </member>
        <member name="P:CI.Organism.ILearningRule.Guid">
            <summary>Learning rule GUID used to uniquely identify it in the neural system</summary>
        </member>
        <member name="P:CI.Organism.ILearningRule.GainLearningRate">
            <summary>
            Learning rate of gain which makes the connections weight stronger
            </summary>
        </member>
        <member name="P:CI.Organism.ILearningRule.LossLearningRate">
            <summary>
            Learning rate of loss which makes the connections weight weaker
            </summary>
        </member>
        <member name="T:CI.Interfaces.INeuron">
            <summary>
            Neural Cell type that is the backbone to processing
            </summary>
        </member>
        <member name="M:CI.Interfaces.INeuron.ActivationFunction(System.UInt32)">
            <summary>
            Activation funciton to see if the neuron fires from its input and updates its outputs
            </summary>
        </member>
        <member name="M:CI.Interfaces.INeuron.ActivationEventNotifier">
            <summary>
            Fire the activation event in the base neural class
            </summary>
        </member>
        <member name="P:CI.Interfaces.INeuron.InputSynapse">
            <summary> 
            List of the input Synapse
            </summary>
        </member>
        <member name="P:CI.Interfaces.INeuron.OutputSynapse">
            <summary>
            List of the output Synapse
            </summary>
        </member>
        <member name="P:CI.Interfaces.INeuron.ThresholdValue">
            <summary>
            Threshold value where activation takes place on the resulting output value of the activation function
            </summary>
        </member>
        <member name="E:CI.Interfaces.INeuron.ActivationEvent">
            <summary>
            Notify any attachments that the activation has fired with a value
            </summary>
        </member>
        <member name="P:CI.Interfaces.INeuron.NeuralSystem">
            <summary>Neural system the neuron belongs to</summary>
        </member>
        <member name="T:CI.Utils.StatsLogger">
            <summary>
            Statistics logger
            </summary>
        </member>
        <member name="F:CI.Utils.StatsLogger.StatsSleeperList">
            <summary>
            List of sleeping stats
            </summary>
        </member>
        <member name="M:CI.Utils.StatsLogger.Sleeper(System.Int32)">
            <summary>
            Sleep for specified amount of time and log it to the stats
            </summary>
            <param name="milliseconds">time in milliseconds to sleep</param>
        </member>
        <member name="M:CI.Utils.StatsLogger.SleepCPUBelow(System.Int32)">
            <summary>
            Sleep until cpu usage is below a certain value
            </summary>
            <param name="maxCpuUsage">target cpu usage to get below</param>
        </member>
        <member name="M:CI.Utils.StatsLogger.TotalStats">
            <summary>
            Log the stats totals
            </summary>
        </member>
        <member name="T:CI.Interfaces.IScenarioEntityRequirements">
            <summary>
            Scenario Entity Requirements
            </summary>
        </member>
        <member name="P:CI.Interfaces.IScenarioEntityRequirements.OrganismType">
            <summary>
            Type of organisms we want
            </summary>
        </member>
        <member name="P:CI.Interfaces.IScenarioEntityRequirements.Locations">
            <summary>
            List of locations we want them at
            </summary>
        </member>
        <member name="P:CI.Interfaces.IScenarioEntityRequirements.UseFallBackOnly">
            <summary>
            Use the fall back organisms only, this will inhibit use of the load org's
            </summary>
        </member>
        <member name="T:CI.Misc.MesopotamiaInstaller">
            <summary>
            Mesopotamia Installer
            </summary>
        </member>
        <member name="F:CI.Misc.MesopotamiaInstaller.RequiredFiles">
            <summary>
            min required simulation files
            </summary>
        </member>
        <member name="M:CI.Misc.MesopotamiaInstaller.#ctor">
            <summary>
            ctor
            </summary>
        </member>
        <member name="M:CI.Misc.MesopotamiaInstaller.RemoveRoboticsProxys">
            <summary>
            Remove the old proxy's
            </summary>
        </member>
        <member name="M:CI.Misc.MesopotamiaInstaller.CopyRoboticsProxys(System.String)">
            <summary>
            Checks for the proxy files and copies them over if they dont exist
            </summary>
        </member>
        <member name="M:CI.Misc.MesopotamiaInstaller.OnAfterInstall(System.Collections.IDictionary)">
            <summary>
            On after install do the following tasks
            </summary>
            <param name="savedState"></param>
        </member>
        <member name="M:CI.Misc.MesopotamiaInstaller.CleanOldFiles">
            <summary>
            purge old files from mesopotamia
            </summary>
        </member>
        <member name="M:CI.Misc.MesopotamiaInstaller.OnAfterUninstall(System.Collections.IDictionary)">
            <summary>
            on after uninstall
            </summary>
            <param name="savedState"></param>
        </member>
        <member name="F:CI.Misc.MesopotamiaInstaller.components">
            <summary>
            Required designer variable.
            </summary>
        </member>
        <member name="M:CI.Misc.MesopotamiaInstaller.Dispose(System.Boolean)">
            <summary> 
            Clean up any resources being used.
            </summary>
            <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        </member>
        <member name="M:CI.Misc.MesopotamiaInstaller.InitializeComponent">
            <summary>
            Required method for Designer support - do not modify
            the contents of this method with the code editor.
            </summary>
        </member>
        <member name="T:CI.IFitnessLevelEvaluator">
            <summary>
             Fitness level evaluator
            </summary>
        </member>
        <member name="M:CI.IFitnessLevelEvaluator.UpdateStrength(CI.Organism.IOrganism)">
            <summary> Update the organisms strength</summary>
            <param name="organism"></param>
        </member>
        <member name="T:CI.IDAL">
            <summary>
            Interface for Data Access Layer to be supported for implementations
            </summary>
        </member>
        <member name="M:CI.IDAL.LoadHostingEnvironment(System.String,CI.Interfaces.IHostingEnvironment,System.Int32,System.Collections.Generic.List{System.Guid})">
            <summary>
            loads the hosting environment into a class provided
            </summary>
            <param name="environment">environment name</param>
            <param name="hostEnvironment">environment</param>
            <param name="maxLoadCount">max number of organisms to load</param>
            <param name="selectedOrganismsToLoad"></param>
            <returns>new or updated hosting environment</returns>
        </member>
        <member name="M:CI.IDAL.SaveHostingEnvironment(System.String,CI.Interfaces.IHostingEnvironment,System.Int32)">
            <summary>
            Saves the organisms in a environment
            </summary>
            <param name="environment">environment name</param>
            <param name="hostEnvironment">Current Hosting Enviorment</param>
            <param name="maxSaveCount">max number of organisms to save</param>
            <returns>true if successfully saved</returns>
        </member>
        <member name="T:CI.Interfaces.IFitnessFunction">
            <summary>Evaluate the fitness of organisms in the environment</summary>
        </member>
        <member name="M:CI.Interfaces.IFitnessFunction.UpdateOrganisms(CI.Organism.IOrganismCollection)">
            <summary>
            Evaluate the orgainsms and update in... this could be collison detection/area covered/objects placed
            to be called every cycle or 
            </summary>
            <param name="organisms"></param>
        </member>
        <member name="M:CI.Interfaces.IFitnessFunction.Fittest(CI.Organism.IOrganismCollection)">
            <summary>
            Return a list with the fittest one first then to the last
            </summary>
            <param name="organisms"></param>
            <returns></returns>
        </member>
        <member name="M:CI.Interfaces.IFitnessFunction.EvaluateFitnessAndUpdateInternalFitnessValue(CI.Organism.IOrganism)">
            <summary>
            Evaluate the organisms fitness
            </summary>
            <param name="organism"></param>
            <returns></returns>
        </member>
        <member name="T:CI.Utils.RoboticsConfig">
            <summary>
            Robotics Folder class that handes find etc
            </summary>
        </member>
        <member name="F:CI.Utils.RoboticsConfig.ScenarioFiles">
            <summary>
            Scenario files registered in environment
            </summary>
        </member>
        <member name="M:CI.Utils.RoboticsConfig.FindRoboticsFolders">
            <summary>
            Find the robotics folders
            </summary>
            <returns></returns>
        </member>
        <member name="M:CI.Utils.RoboticsConfig.SearchRegistryRoboticsFolder">
            <summary>
            search the registry for the robotics folder
            </summary>
            <returns></returns>
        </member>
        <member name="M:CI.Utils.RoboticsConfig.SearchRegistry(System.String)">
            <summary>
            searches registry for value
            </summary>
            <param name="registryLocation"></param>
            <returns></returns>
        </member>
        <member name="M:CI.Utils.RoboticsConfig.CopyScenarioFiles">
            <summary>
            copy the scenario files in my documents
            </summary>
        </member>
        <member name="M:CI.Utils.RoboticsConfig.DeleteScenarioFiles">
            <summary>
            Delete the scenario files in my documents
            </summary>
        </member>
        <member name="M:CI.Utils.RoboticsConfig.LoadDssConfig(System.Int32)">
            <summary>
            Loads dss config
            </summary>
            <returns></returns>
        </member>
        <member name="T:CI.Misc.MockHostingEnvironmentPhysical">
            <summary>
            Emulate hosting environment
            </summary>
        </member>
        <member name="T:CI.Misc.MockFitnessFunction">
            <summary>
            Emulate fitness function
            </summary>
        </member>
        <member name="T:CI.Misc.MockSimulation">
            <summary>
            Emulate the simulation restrictions
            </summary>
        </member>
        <member name="T:CI.Organism.IOrganismCollection">
            <summary>Collection class of all organisms, alive, dead, inactive</summary>
        </member>
        <member name="M:CI.Organism.IOrganismCollection.DirtyLocationsRebuild">
            <summary>
            creates a new list based on the organisms if they have the dirty flag set and clears the organisms dirty flag
            Note : if its already been done this heartbeat it wont happen again.
            </summary>
        </member>
        <member name="M:CI.Organism.IOrganismCollection.Find(System.Guid)">
            <summary>
            Find the Organism with the specifed guid
            </summary>
            <param name="guid">guid to find</param>
            <returns>Cell</returns>
        </member>
        <member name="M:CI.Organism.IOrganismCollection.Contains(CI.Organism.IOrganism)">
            <summary>
            see if the organism collection contains the organism
            </summary>
            <param name="organism"></param>
            <returns></returns>
        </member>
        <member name="M:CI.Organism.IOrganismCollection.ToString(CI.Interfaces.IFitnessFunction)">
            <summary>
            ToString with a fitness function
            </summary>
            <returns></returns>
        </member>
        <member name="P:CI.Organism.IOrganismCollection.Alive">
            <summary>Sub collection of the alive organisms</summary>
        </member>
        <member name="P:CI.Organism.IOrganismCollection.Dead">
            <summary>Sub Collection of Dead Organisms</summary>
        </member>
        <member name="P:CI.Organism.IOrganismCollection.Inactive">
            <summary>Sub collection of inactive organisms, they are dead and not not on the screen</summary>
        </member>
        <member name="P:CI.Organism.IOrganismCollection.hostEnvironment">
            <summary>Hosting Environment the organisms belong to</summary>
        </member>
        <member name="P:CI.Organism.IOrganismCollection.DirtyLocations">
            <summary>Sub colleciton of all the organisms which have the dirty location flagged mark and need updating</summary>
        </member>
        <member name="T:CI.Interfaces.INeuronCollection">
            <summary>
            Neural cell collection
            </summary>
        </member>
        <member name="M:CI.Interfaces.INeuronCollection.Find(System.Guid)">
            <summary>
            Find the neuron with the specifed guid
            </summary>
            <param name="guid">guid to find</param>
            <returns>Cell</returns>
        </member>
        <member name="T:CI.Interfaces.IReproductive">
            <summary>
            Reproductive cell type which can reproduce the childOrganism
            </summary>
        </member>
        <member name="T:CI.Interfaces.ICellCollection">
            <summary>
            All the cells
            </summary>
        </member>
        <member name="M:CI.Interfaces.ICellCollection.Mutate(System.Double,CI.Organism.IOrganism)">
            <summary>
            Take this parent cell collection and create a new cell collection to be put in the new child Organism
            Mutate the current cells and return a new one, deep class level mutation
            </summary>
            <param name="mutationRate">mutation rate to be applied</param>
            <param name="childOrganism">child Organism it will be going into</param>
            <returns>new cell collection for child</returns>
        </member>
        <member name="M:CI.Interfaces.ICellCollection.Find(System.Guid)">
            <summary>
            Find the cell with the specifed guid
            </summary>
            <param name="guid">guid to find</param>
            <returns>Cell</returns>
        </member>
        <member name="M:CI.Interfaces.ICellCollection.Find(System.String)">
            <summary>
            Find the cell with the specifed guid as a string
            </summary>
            <param name="guid">guid to find as a string</param>
            <returns>Cell</returns>
        </member>
        <member name="M:CI.Interfaces.ICellCollection.FindPhysicalZygote">
            <summary>
            Find the base physical cell that everything is build off
            </summary>
            <returns>Cell</returns>
        </member>
        <member name="M:CI.Interfaces.ICellCollection.Neurons">
            <summary>
            this will scan all the cells and find neurons
            </summary>
            <returns></returns>
        </member>
        <member name="M:CI.Interfaces.ICellCollection.EqualsValueTypes(CI.Interfaces.ICellCollection)">
            <summary>
            do a equals comparison of one cell collection type to another only comparing the value types, no refference comparisons
            </summary>
            <param name="cells">cells to compare against</param>
            <returns>true if equal value types</returns>
        </member>
        <member name="T:CI.Organism.ActiveState">
            <summary>Active State of the organisms, is it to be renderd?. As a dead organisms can still be rendered for food for a 
            scavanger but once it has been consumed then dont display or proccess it. When loading from the Data source only load Active organisms
            </summary>
        </member>
        <member name="F:CI.Organism.ActiveState.Process">
            <summary>Actively render, process etc</summary>
        </member>
        <member name="F:CI.Organism.ActiveState.Ignore">
            <summary>Ignore it, also when loading from DB dont load it</summary>
        </member>
        <member name="T:CI.Interfaces.IScenario">
            <summary>
            Scenario
            </summary>
        </member>
        <member name="M:CI.Interfaces.IScenario.Load">
            <summary>
            Load a scenario into the current class
            </summary>
        </member>
        <member name="M:CI.Interfaces.IScenario.Save">
            <summary>
            Save the scenario
            </summary>
        </member>
        <member name="M:CI.Interfaces.IScenario.CompareEnvironmentUpdateRequirements(CI.Organism.IOrganismCollection,CI.Interfaces.IHostingEnvironment)">
            <summary>
            Compare what we loaded in with the DAL compared to what the 
            scenario requirements are in the requirements
            
            Set all the organisms at their location specfied in the requirements
            </summary>
        </member>
        <member name="M:CI.Interfaces.IScenario.GetScenariosAvailable">
            <summary>
            get list of available scenarios
            </summary>
            <returns></returns>
        </member>
        <member name="M:CI.Interfaces.IScenario.GetScenarioOrganisms(System.String,System.Int32,System.Int32)">
            <summary>
            get the sceanrio's organisms
            </summary>
            <param name="scenarioName"></param>
            <param name="startIndex"></param>
            <param name="endIndex"></param>
        </member>
        <member name="M:CI.Interfaces.IScenario.EqualsValueTypes(CI.Interfaces.IScenario)">
            <summary>
            see if all the values in the objects(not the objects) are equal
            selective  comparisions
            </summary>
            <param name="scenario">scenario to comare against</param>
            <returns>true if the same values</returns>
        </member>
        <member name="P:CI.Interfaces.IScenario.ScenarioName">
            <summary>
            Scene name
            Used in DAL name used to load and save
            </summary>    
        </member>
        <member name="P:CI.Interfaces.IScenario.ManifestFile">
            <summary>
            Manifest file
            </summary>
        </member>
        <member name="P:CI.Interfaces.IScenario.HostingEnvironmentVersionInformation">
            <summary>
            Version of Hosting Environment
            </summary>
        </member>
        <member name="P:CI.Interfaces.IScenario.ScenarioDescription">
            <summary>
            Scene Description
            </summary>
        </member>
        <member name="P:CI.Interfaces.IScenario.BoundryXRadiusMax">
            <summary>Max X radius boundry</summary>
        </member>
        <member name="P:CI.Interfaces.IScenario.BoundryYRadiusMax">
            <summary>Max Y radius boundry</summary>
        </member>
        <member name="P:CI.Interfaces.IScenario.BoundryZRadiusMax">
            <summary>Max Z radius boundry</summary>
        </member>
        <member name="P:CI.Interfaces.IScenario.FitnessFunction">
            <summary>Fitness function for the environment</summary>   
        </member>
        <member name="P:CI.Interfaces.IScenario.SimulationRestrictions">
            <summary>Simulation environment</summary>
        </member>
        <member name="P:CI.Interfaces.IScenario.MaxLoadCount">
            <summary>
            max number to load from the dal for the scenario
            </summary>
        </member>
        <member name="P:CI.Interfaces.IScenario.MaxSaveCount">
            <summary>
            max number to save to the dal for the scenario
            </summary>
        </member>
        <member name="P:CI.Interfaces.IScenario.RequiredOrganisms">
            <summary>
            List of required entitys
            </summary>
        </member>
        <member name="P:CI.Interfaces.IScenario.FallBackOrganisms">
            <summary>
            Fall back list of Enitys in the scenario eg, Amoeba, iRobot in case the resources in the resource file arent enough
            </summary>
        </member>
        <member name="P:CI.Interfaces.IScenario.ExternalOrganisms">
            <summary>
            Entity organisms loaded through DAL
            </summary>
        </member>
    </members>
</doc>
